# verify fractional second read and writes.
gpsbabel -i unicsv -f ${REFERENCE}/unicsv_subsec.csv -o unicsv -F ${TMPDIR}/unicsv_subsec.csv
compare ${TMPDIR}/unicsv_subsec.csv ${REFERENCE}/unicsv_subsec.csv
+
+# Verify 'fields' option
+gpsbabel -i unicsv,fields=lat+lon+description -f ${REFERENCE}/radius.csv -o csv -F ${TMPDIR}/unicsv_fields.out
+compare ${REFERENCE}/radius.csv ${TMPDIR}/unicsv_fields.out
static char unicsv_outp_flags[(fld_terminator + 8) / 8];
static grid_type unicsv_grid_idx;
static int unicsv_datum_idx;
-static char* opt_datum, *opt_grid, *opt_utc, *opt_filename, *opt_format, *opt_prec;
+static char* opt_datum;
+static char* opt_grid;
+static char* opt_utc;
+static char* opt_filename;
+static char* opt_format;
+static char* opt_prec;
+static char* opt_fields;
static int unicsv_waypt_ct;
static char unicsv_detect;
static int llprec;
"prec", &opt_prec, "Precision of numerical coordinates (no grid set)",
"6", ARGTYPE_INT | ARGTYPE_HIDDEN, "0", "15"
},
+ {
+ "fields", &opt_fields, "Name and order of input fields, separated by '+'",
+ NULL, ARGTYPE_STRING, ARG_NOMINMAX
+ },
ARG_TERMINATOR
};
unicsv_datum_idx = gt_lookup_datum_index(opt_datum, MYNAME);
fin = gbfopen(fname, "rb", MYNAME);
-
- if ((c = gbfgetstr(fin))) {
+ if (opt_fields) {
+ QString fields = QString(opt_fields).replace("+", ",");
+ unicsv_fondle_header(fields);
+ } else if ((c = gbfgetstr(fin))) {
unicsv_fondle_header(c);
} else {
unicsv_fieldsep = NULL;
--- /dev/null
+<para>
+This option lets you specify the field names of your input file from
+the command line instead of relying on the first line of your input
+file describing the file. Field names are separated by a '+' character.
+The list of field names is exactly that allowed in the first line of a
+unicsv file without this option.
+</para>
+
+<example id="unicsv_fields">
+ <title>Example for unicsv fields option to describe input file.</title>
+ <para>
+ For example ...
+ <userinput>
+ gpsbabel -i unicsv,fields=lat+lon+description -f file.csv -o gpx -F file.gpx
+ </userinput>
+ declares that file.csv has three fields, latitude, longitude,
+ and description, in that order.
+ </para>
+
+</example>